using System;
using Microsoft.ApplicationBlocks.Data;
using eVideoStore.Entidades;

namespace eVideoStore.DAL.SqlServer
{
	public class DAOTipoPelicula: eVideoStore.DAL.DAOTipoPelicula
	{
		static String strConn = "Data Source=C45-SERV;Initial Catalog=eVideoStoreDB;"+
				"User Id=sa;password=sa";
		public DAOTipoPelicula()
		{
		}
		public override void guardar(TipoPelicula tipo) 
		{
			string sqlInsert = string.Format("INSERT INTO tipos_pelicula "+
				"(nombre, costo_alquiler, no_dias_alquiler)" +
				" VALUES('{0}',{1},{2},{3})", 
				tipo.nombre,
				tipo.costoAlquiler,
				tipo.noDiasAlquiler);

			SqlHelper.ExecuteNonQuery(strConn, System.Data.CommandType.Text, sqlInsert);
		}

        public override void modificar(TipoPelicula tipo) 
		{
			string sqlUpdate = 
				string.Format("UPDATE tipos_pelicula "+
					" SET nombre='{0}', costo_alquiler={1}, no_dias_alquiler={2} "+
					" WHERE id={3}",
				tipo.nombre, tipo.costoAlquiler,tipo.noDiasAlquiler,tipo.id);
			SqlHelper.ExecuteNonQuery(strConn, System.Data.CommandType.Text, sqlUpdate);
		}
        public override void eliminar(TipoPelicula tipo) 
		{
			string sqlDelete =
				string.Format("DELETE tipos_pelicula WHERE id={0}", tipo.id);
			SqlHelper.ExecuteNonQuery(strConn, System.Data.CommandType.Text, sqlDelete);
		}
        public override TipoPelicula obtenerPorId(int id) 
		{
			string sqlSelect =
				string.Format("SELECT id,nombre,costo_alquiler,no_dias_alquiler" +
					" FROM tipos_pelicula WHERE id={0}", id);

			System.Data.DataSet ds = 
				SqlHelper.ExecuteDataset(strConn, System.Data.CommandType.Text, sqlSelect);

			if(ds.Tables[0].Rows.Count == 1) 
			{
				System.Data.DataRow dr = ds.Tables[0].Rows[0];
				return new TipoPelicula((int)dr.ItemArray[0],
					(string)dr.ItemArray[1],
					(double)dr.ItemArray[2],
					(int)dr.ItemArray[3]);
			} 
			else 
			{
				return null;
			}
		}
        public override System.Collections.Generic.IList<TipoPelicula> obtenerTodos()
        {
            System.Collections.Generic.List<TipoPelicula> l = new System.Collections.Generic.List<TipoPelicula>();
            l.Add(new TipoPelicula("NORMAL", 7.0,1));
            l.Add(new TipoPelicula("ESTRENO", 7.0, 1));
            return l;
        }

	}
}
